Multimedia and group communications have become an important aspect of telecommunications, and the demand for such continues to increase. For instance, the Final Report of the Public Safety Wireless Advisory Committee to the Federal Communications Committee (“FCC”), dated 1996, expressed the critical need for communication resources for multimedia. Subsequently in 1998, the FCC established a band plan for the 764 MHz frequencies that included spectrum set aside for public safety wideband. In addition, the Internet Engineering Task Force (“IETF”) has developed a suite of protocols that are designed for use in multimedia communications. These protocols include a Session Initiation Protocol (“SIP”), a Session Announcement Protocol (“SAP”), and a Session Description Protocol (“SDP”).
Since its approval in early 1999 as an official standard, SIP has gained tremendous market acceptance for signaling communications services on the Internet. As such, numerous products incorporate the SIP standard, including but not limited to SIP desktop telephones, SIP telephony servers, and personal computing (“PC”) devices running SIP applications. SIP is a text-based signaling transactional protocol, similar to Hypertext Transfer Protocol (“HTTP”) and Simple Mail Transfer Protocol (“SMTP”), and works in the Application layer of the Open Systems Interconnection (“OSI”) communications model. A SIP message is used to initiate an interactive communications session, such as voice, video, and chat, between users (also referred to herein as callers) in a communications network. Each user is typically associated with a communications device (also referred to herein as a terminal device or an endpoint) that is connected to the network.
SIP is not only used to initiate sessions, SIP messages are also used to terminate and to modify sessions. SIP does not, however, actually define what a “session” is, e.g., which Internet Protocol (“IP”) channel (addresses and ports), media codec specification, floor control channels, etc., are to be used during the session. This is described by content carried in the SIP messages. SIP conveys information about the protocol used to describe the session through multipurpose Internet mail extensions (MIME), widely used in web and e-mail services to describe content (HTML, audio, video, etc.). The most common protocol used to describe sessions is SDP, described in the IETF Request for Comments [RFC]2327. SIP can also be used to negotiate a common format for describing sessions, so that other protocols besides SDP can be used.
SIP is based on the request-response paradigm. Thus, to initiate a session, a caller who is associated with an initiating endpoint sends a request (called an INVITE) addressed to the user, associated with a recipient endpoint, that the caller wants to talk to. In SIP, addresses are Uniform Resource Locators (“URLs”). SIP defines a URL format that is very similar to the popular mailto URL. For instance, if the user's e-mail address is janedoe@company.com, the SIP URL would be sip:janedoe@company.com. Once the user has been located and the session description delivered, SIP is used to convey the response to the session initiation (accept, reject, etc.). If accepted (via a SIP OK), the session is now active, wherein a SIP ACK is then sent from the initiating endpoint to the recipient endpoint.
In SIP, a successful INVITE/OK/ACK exchange creates a SIP control dialog (also referred to as a SIP dialog, a call leg or a SIP transaction). Once a session is active, SIP can be used to modify the session as well. To modify a session, the initiating endpoint simply re-initiates the session, sending the same message as the original, but with a new session description. For this reason, modification of sessions (which includes things like adding and removing audio streams, adding video, changing codecs, hold and mute) are easily supported with SIP, so long as the session description protocol can support them (SDP supports all of the above). Finally, SIP can be used to terminate the session. Sending a SIP BYE message performs this function.
SIP is good for controlling media sessions and for establishing media sessions between an initiating endpoint and one recipient endpoint or a small group of recipient endpoints. However, SIP is not readily scalable for establishing media sessions between an initiating endpoint and a large group of recipient endpoints. This is because in standard SIP, three messages (INVITE/OK/ACK) must be sent between the initiating endpoint and each recipient endpoint in a given group. If a group is particularly large, this excessive messaging could cause bandwidth and timing problems, which is not desirable for communications that are time sensitive, e.g., as in the area of public safety.
SAP, on the other hand, is a broadcast protocol that is defined in RFC2974. SAP is used by a session directory server, referred to as a SAP announcer, to announce multicast based conferences, wherein, for instance, multimedia files (usually audio and video streams) are sent to multiple users at the same time somewhat as radio and TV programs are broadcast over airwaves. Although SAP is scalable for large group communications, a shortcoming of how SAP is currently implemented is that it has a low update or announcement rate that does not support dynamically assigned sessions.
Thus, there exists a need for a method and a system architecture that supports dynamically assigned sessions for group communication between a plurality of endpoints and that is scalable for any size group and overcomes the bandwidth and timing problems in the current art.